package cn.wolfcode.wolf2w.redis.util;

import cn.wolfcode.wolf2w.util.Consts;
import lombok.Getter;

/**
 * Created by 甘静斌 on 2020-08-08 20:16
 */

/**
 * redis的key管理工具类
 * 约定:一个枚举实例就是一个key
 */
@Getter
public enum RedisKeys {

    //点赞数 + 1 的 key
    STRATEGY_THUMBUP_VO("STRATEGY_THUMBUP_VO",-1L),

    //收藏数 + 1 的 key
    STRATEGY_FAVOR_VO("strategy_favor_vo",-1L),

    //阅读数 + 1 的 key
    STRATEGY_STATIS_VO("strategy_statis_vo",-1L),

    //用户登陆的 key
    USER_LOGIN_TOKEN("user_login_token",Consts.USER_INFO_TOKEN_VAI_TIME*60L),

    //短信验证
    VERIFY_CODE("verify_code",Consts.VERIFY_CODE_VAI_TIME*60L);

    private String prefix;  //redis的key前缀
    private Long time;   //redis的key的有效时间, -1L表示不需要指定过期时间,单位s

    RedisKeys(String prefix, long time) {

        this.prefix = prefix;
        this.time = time;
    }

    //拼接完整的redis  key
    public String join(String... value){


        StringBuilder sb = new StringBuilder(80);
        sb.append(this.prefix);
        for (String s : value) {
            sb.append(":").append(s);
        }
        return sb.toString();
    }
}
